A spreadsheet provides a functional programming framework to many users allowing them to build graphic as a chain of formulas that link various cells. The spreadsheet decides the order of computation of these formulas by creating a ‘Dependency graph’—which is inherently static. Every cell in the spreadsheet could contain a value or a formula, and all the cells, only evaluate the formulas that are contained within them. Since no new cells are generated, the act of evaluation in itself does not change the dependency graph, before and after the calculation. This current model is universally adopted across all spreadsheet platforms. The U.S. Pat. No. 7,266,763 describes a method that allows the user to abstract a given chain of calculations into re-usable, user-defined functions works on a spreadsheet with a static dependency graph. The functions can be customized by the user unlike the built-in functions that are provided in spreadsheets.
However, large parts of the real world problems involve chain of calculations, where the nature of a given calculation in that chain varies with the outcome of the preceding calculations in the same chain. For example, when the number of cells that need to evaluate a given formula is itself dependent on the outcome of some other preceding calculation. A static formula does not disturb the dependency graph on evaluation, but this can be disadvantageous as it cannot create or delete new cells. Therefore, it is difficult to build business models using spreadsheets having static data dependency. Spreadsheets in their current form will not be able to handle dynamic inter-dependency in calculation chains, and a user will not be able to define custom functions in such scenarios. It is because of this reason that user defined functions described in U.S. Pat. No. 7,266,763 are of limited value, and users need to employ programming languages to solve complex tasks on spreadsheets.
In light of the above discussion, there is a need for a method and system that overcomes all the above stated problems.